Tree data structures are a common way to represent hierarchical information in software application such as, file folders, database relations, software code class trees, system registries, etc. Such tree structures facilitate access to information by organizing the information in a logical manner. However, as the information being represented becomes larger and more complex, the tree structures grow to include more nodes and a greater number of levels in the hierarchy. Consequently, these larger tree structures become increasingly difficult for users to navigate, and very few innovations in managing these tree data structures have been made.
Specifically, larger trees include more information for a user to search through. In addition, the information that the user is looking for may be deep within the hierarchy of the tree. As such, if a user is not already aware of where to find the information they are searching for, the user may be required to follow potentially long branches. Even if the user does happen to know where the information they are looking for is located, the user may still be required to browse through several nodes in order to get to their desired location.
Furthermore, navigation in large trees becomes even more difficult when a tree includes many levels of sub-nodes. This is due to the fact that exploring those levels requires the user to scroll both horizontally and vertically in order to fit a new level within a window's viewing area. As the user scrolls down more and more levels, the user must remember their position within the tree. Remembering tree positions in large trees becomes increasingly difficult. This problem is compounded when a user employs a find or search option. Following a search the user has virtually no way to orient themselves within the tree structure.
Consequently, as a user searches through a tree structure, the user may easily become disoriented, and have difficulty returning to their starting location. Further, as a user navigates through the tree structure they may lose track of previously selected nodes. For these reasons, among others, there is a need for improvements to navigational tools in a hierarchical tree data structure.